/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package gamedsl2.util;

import gamedsl2.*;

import java.util.Map;

import org.eclipse.emf.common.util.Diagnostic;
import org.eclipse.emf.common.util.DiagnosticChain;
import org.eclipse.emf.common.util.ResourceLocator;

import org.eclipse.emf.ecore.EPackage;

import org.eclipse.emf.ecore.util.EObjectValidator;

/**
 * <!-- begin-user-doc -->
 * The <b>Validator</b> for the model.
 * <!-- end-user-doc -->
 * @see gamedsl2.Gamedsl2Package
 * @generated
 */
public class Gamedsl2Validator extends EObjectValidator {
	/**
	 * The cached model package
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final Gamedsl2Validator INSTANCE = new Gamedsl2Validator();

	/**
	 * A constant for the {@link org.eclipse.emf.common.util.Diagnostic#getSource() source} of diagnostic {@link org.eclipse.emf.common.util.Diagnostic#getCode() codes} from this package.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see org.eclipse.emf.common.util.Diagnostic#getSource()
	 * @see org.eclipse.emf.common.util.Diagnostic#getCode()
	 * @generated
	 */
	public static final String DIAGNOSTIC_SOURCE = "gamedsl2";

	/**
	 * A constant with a fixed name that can be used as the base value for additional hand written constants.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final int GENERATED_DIAGNOSTIC_CODE_COUNT = 0;

	/**
	 * A constant with a fixed name that can be used as the base value for additional hand written constants in a derived class.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final int DIAGNOSTIC_CODE_COUNT = GENERATED_DIAGNOSTIC_CODE_COUNT;

	/**
	 * Creates an instance of the switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public Gamedsl2Validator() {
		super();
	}

	/**
	 * Returns the package of this validator switch.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected EPackage getEPackage() {
	  return Gamedsl2Package.eINSTANCE;
	}

	/**
	 * Calls <code>validateXXX</code> for the corresponding classifier of the model.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	protected boolean validate(int classifierID, Object value, DiagnosticChain diagnostics, Map<Object, Object> context) {
		switch (classifierID) {
			case Gamedsl2Package.ENVIRONMENT:
				return validateEnvironment((Environment)value, diagnostics, context);
			case Gamedsl2Package.ABSTRACT_ENVIRONMENT:
				return validateAbstractEnvironment((AbstractEnvironment)value, diagnostics, context);
			case Gamedsl2Package.TILE_ENVIRONMENT:
				return validateTileEnvironment((TileEnvironment)value, diagnostics, context);
			case Gamedsl2Package.ENTITY:
				return validateEntity((Entity)value, diagnostics, context);
			case Gamedsl2Package.ABSTRACT_ENTITY:
				return validateAbstractEntity((AbstractEntity)value, diagnostics, context);
			case Gamedsl2Package.ACTOR_PHYSICS:
				return validateActorPhysics((ActorPhysics)value, diagnostics, context);
			case Gamedsl2Package.TILE:
				return validateTile((Tile)value, diagnostics, context);
			case Gamedsl2Package.TILE_SHAPES:
				return validateTileShapes((TileShapes)value, diagnostics, context);
			case Gamedsl2Package.GAME_HOLDER:
				return validateGameHolder((GameHolder)value, diagnostics, context);
			case Gamedsl2Package.STATE:
				return validateState((State)value, diagnostics, context);
			case Gamedsl2Package.MAP_LOADER:
				return validateMapLoader((MapLoader)value, diagnostics, context);
			case Gamedsl2Package.RECTANGULAR_ENTITY:
				return validateRectangularEntity((RectangularEntity)value, diagnostics, context);
			case Gamedsl2Package.ACTOR_GAME:
				return validateActorGame((ActorGame)value, diagnostics, context);
			case Gamedsl2Package.TILE_SET:
				return validateTileSet((TileSet)value, diagnostics, context);
			case Gamedsl2Package.EVENT:
				return validateEvent((Event)value, diagnostics, context);
			case Gamedsl2Package.IEVENT_HANDLER:
				return validateIEventHandler((IEventHandler)value, diagnostics, context);
			case Gamedsl2Package.EVENT_TRACKER:
				return validateEventTracker((EventTracker)value, diagnostics, context);
			case Gamedsl2Package.SPRITE:
				return validateSprite((Sprite)value, diagnostics, context);
			default:
				return true;
		}
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEnvironment(Environment environment, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(environment, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEnvironment(AbstractEnvironment abstractEnvironment, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(abstractEnvironment, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTileEnvironment(TileEnvironment tileEnvironment, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(tileEnvironment, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validateTileEnvironment_TE1_TileWidthGreaterThanZero(tileEnvironment, diagnostics, context);
		if (result || diagnostics != null) result &= validateTileEnvironment_TE1_TileHeightGreaterThanZero(tileEnvironment, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the TE1_TileWidthGreaterThanZero constraint of '<em>Tile Environment</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String TILE_ENVIRONMENT__TE1_TILE_WIDTH_GREATER_THAN_ZERO__EEXPRESSION = "tileWidth > 0";

	/**
	 * Validates the TE1_TileWidthGreaterThanZero constraint of '<em>Tile Environment</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTileEnvironment_TE1_TileWidthGreaterThanZero(TileEnvironment tileEnvironment, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.TILE_ENVIRONMENT,
				 tileEnvironment,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "TE1_TileWidthGreaterThanZero",
				 TILE_ENVIRONMENT__TE1_TILE_WIDTH_GREATER_THAN_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the TE1_TileHeightGreaterThanZero constraint of '<em>Tile Environment</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String TILE_ENVIRONMENT__TE1_TILE_HEIGHT_GREATER_THAN_ZERO__EEXPRESSION = "tileHeight > 0";

	/**
	 * Validates the TE1_TileHeightGreaterThanZero constraint of '<em>Tile Environment</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTileEnvironment_TE1_TileHeightGreaterThanZero(TileEnvironment tileEnvironment, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.TILE_ENVIRONMENT,
				 tileEnvironment,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "TE1_TileHeightGreaterThanZero",
				 TILE_ENVIRONMENT__TE1_TILE_HEIGHT_GREATER_THAN_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEntity(Entity entity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(entity, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(abstractEntity, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE7_yPosGreaterThanZero(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE1_TypeMustBeDefined(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE3_NameMustNotBeEmptyString(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE5_TypeMustNotBeEmptyString(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE2_NameMustBeSet(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE4_MassBeGreaterThanZero(abstractEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE6_xPosGreaterThanZero(abstractEntity, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the AE7_yPosGreaterThanZero constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE7_YPOS_GREATER_THAN_ZERO__EEXPRESSION = "yPos > 0";

	/**
	 * Validates the AE7_yPosGreaterThanZero constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE7_yPosGreaterThanZero(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE7_yPosGreaterThanZero",
				 ABSTRACT_ENTITY__AE7_YPOS_GREATER_THAN_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the AE1_TypeMustBeDefined constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE1_TYPE_MUST_BE_DEFINED__EEXPRESSION = "type.oclIsUndefined() = false";

	/**
	 * Validates the AE1_TypeMustBeDefined constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE1_TypeMustBeDefined(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE1_TypeMustBeDefined",
				 ABSTRACT_ENTITY__AE1_TYPE_MUST_BE_DEFINED__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the AE3_NameMustNotBeEmptyString constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE3_NAME_MUST_NOT_BE_EMPTY_STRING__EEXPRESSION = "name <> ''";

	/**
	 * Validates the AE3_NameMustNotBeEmptyString constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE3_NameMustNotBeEmptyString(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE3_NameMustNotBeEmptyString",
				 ABSTRACT_ENTITY__AE3_NAME_MUST_NOT_BE_EMPTY_STRING__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the AE5_TypeMustNotBeEmptyString constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE5_TYPE_MUST_NOT_BE_EMPTY_STRING__EEXPRESSION = "type <> ''";

	/**
	 * Validates the AE5_TypeMustNotBeEmptyString constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE5_TypeMustNotBeEmptyString(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE5_TypeMustNotBeEmptyString",
				 ABSTRACT_ENTITY__AE5_TYPE_MUST_NOT_BE_EMPTY_STRING__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the AE2_NameMustBeSet constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE2_NAME_MUST_BE_SET__EEXPRESSION = "name.oclIsUndefined() = false";

	/**
	 * Validates the AE2_NameMustBeSet constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE2_NameMustBeSet(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE2_NameMustBeSet",
				 ABSTRACT_ENTITY__AE2_NAME_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the AE4_MassBeGreaterThanZero constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE4_MASS_BE_GREATER_THAN_ZERO__EEXPRESSION = "mass > 0";

	/**
	 * Validates the AE4_MassBeGreaterThanZero constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE4_MassBeGreaterThanZero(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE4_MassBeGreaterThanZero",
				 ABSTRACT_ENTITY__AE4_MASS_BE_GREATER_THAN_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the AE6_xPosGreaterThanZero constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String ABSTRACT_ENTITY__AE6_XPOS_GREATER_THAN_ZERO__EEXPRESSION = "xPos > 0";

	/**
	 * Validates the AE6_xPosGreaterThanZero constraint of '<em>Abstract Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateAbstractEntity_AE6_xPosGreaterThanZero(AbstractEntity abstractEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.ABSTRACT_ENTITY,
				 abstractEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "AE6_xPosGreaterThanZero",
				 ABSTRACT_ENTITY__AE6_XPOS_GREATER_THAN_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateActorPhysics(ActorPhysics actorPhysics, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(actorPhysics, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE7_yPosGreaterThanZero(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE1_TypeMustBeDefined(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE3_NameMustNotBeEmptyString(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE5_TypeMustNotBeEmptyString(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE2_NameMustBeSet(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE4_MassBeGreaterThanZero(actorPhysics, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE6_xPosGreaterThanZero(actorPhysics, diagnostics, context);
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTile(Tile tile, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(tile, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTileShapes(TileShapes tileShapes, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(tileShapes, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(gameHolder, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH5_gameHolderName(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH6_uniqueStateName(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH2_minMapLoader(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH4_minStates(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH7_uniqueStateId(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH1_maxEventTracker(gameHolder, diagnostics, context);
		if (result || diagnostics != null) result &= validateGameHolder_GH3_maxTilShapes(gameHolder, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the GH5_gameHolderName constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH5_GAME_HOLDER_NAME__EEXPRESSION = "name -> notEmpty()";

	/**
	 * Validates the GH5_gameHolderName constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH5_gameHolderName(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH5_gameHolderName",
				 GAME_HOLDER__GH5_GAME_HOLDER_NAME__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the GH6_uniqueStateName constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH6_UNIQUE_STATE_NAME__EEXPRESSION = "states.name->size()=states.name->asSet()->size()";

	/**
	 * Validates the GH6_uniqueStateName constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH6_uniqueStateName(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH6_uniqueStateName",
				 GAME_HOLDER__GH6_UNIQUE_STATE_NAME__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the GH2_minMapLoader constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH2_MIN_MAP_LOADER__EEXPRESSION = "mapLoader -> size() >= 1";

	/**
	 * Validates the GH2_minMapLoader constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH2_minMapLoader(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH2_minMapLoader",
				 GAME_HOLDER__GH2_MIN_MAP_LOADER__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the GH4_minStates constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH4_MIN_STATES__EEXPRESSION = "states -> size() >= 1";

	/**
	 * Validates the GH4_minStates constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH4_minStates(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH4_minStates",
				 GAME_HOLDER__GH4_MIN_STATES__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the GH7_uniqueStateId constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH7_UNIQUE_STATE_ID__EEXPRESSION = "states.id->size()=states.id->asSet()->size()";

	/**
	 * Validates the GH7_uniqueStateId constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH7_uniqueStateId(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH7_uniqueStateId",
				 GAME_HOLDER__GH7_UNIQUE_STATE_ID__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the GH1_maxEventTracker constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH1_MAX_EVENT_TRACKER__EEXPRESSION = "tracker -> size() = 1";

	/**
	 * Validates the GH1_maxEventTracker constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH1_maxEventTracker(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH1_maxEventTracker",
				 GAME_HOLDER__GH1_MAX_EVENT_TRACKER__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the GH3_maxTilShapes constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String GAME_HOLDER__GH3_MAX_TIL_SHAPES__EEXPRESSION = "tileShapes -> size() = 1";

	/**
	 * Validates the GH3_maxTilShapes constraint of '<em>Game Holder</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateGameHolder_GH3_maxTilShapes(GameHolder gameHolder, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.GAME_HOLDER,
				 gameHolder,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "GH3_maxTilShapes",
				 GAME_HOLDER__GH3_MAX_TIL_SHAPES__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(state, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(state, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_G3_PlayerAssignedToGameStateNotContainingItsEnvironment(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S18_StateMoveDownMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S2_stateHasPlayer(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S1_stateHasEnvironment(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S15_StateMoveLeftMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S6_UniqueDirectionalKeyValues(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S10_ValidMapFile(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S11_ValidTilesFile(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S8_StateIdMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S4_jumpForceChecker(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S16_StateMoveRightMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S12_StateBackgroundImageMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S19_StateActionButtonAMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S17_StateMoveUpMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S13_StateTilesFileMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S9_ValidBackgroundImageFileType(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S7_StateNameMustBeSet(state, diagnostics, context);
		if (result || diagnostics != null) result &= validateState_S14_StateMapFileMustBeSet(state, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the G3_PlayerAssignedToGameStateNotContainingItsEnvironment constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__G3_PLAYER_ASSIGNED_TO_GAME_STATE_NOT_CONTAINING_ITS_ENVIRONMENT__EEXPRESSION = "\n" +
		"\t\t\tlet env : AbstractEnvironment = self.environment.oclAsType(AbstractEnvironment) in\n" +
		"\t\t\tlet actors : Set(ActorPhysics) = env.entities->select(oclIsTypeOf(ActorGame)).oclAsType(ActorPhysics)->asSet() in\n" +
		"\t\t\tactors->includesAll(self.player)";

	/**
	 * Validates the G3_PlayerAssignedToGameStateNotContainingItsEnvironment constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_G3_PlayerAssignedToGameStateNotContainingItsEnvironment(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "G3_PlayerAssignedToGameStateNotContainingItsEnvironment",
				 STATE__G3_PLAYER_ASSIGNED_TO_GAME_STATE_NOT_CONTAINING_ITS_ENVIRONMENT__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S18_StateMoveDownMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S18_STATE_MOVE_DOWN_MUST_BE_SET__EEXPRESSION = "moveDown.oclIsUndefined()=false";

	/**
	 * Validates the S18_StateMoveDownMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S18_StateMoveDownMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S18_StateMoveDownMustBeSet",
				 STATE__S18_STATE_MOVE_DOWN_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S2_stateHasPlayer constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S2_STATE_HAS_PLAYER__EEXPRESSION = "player->size()>0";

	/**
	 * Validates the S2_stateHasPlayer constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S2_stateHasPlayer(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S2_stateHasPlayer",
				 STATE__S2_STATE_HAS_PLAYER__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S1_stateHasEnvironment constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S1_STATE_HAS_ENVIRONMENT__EEXPRESSION = "environment->size()<=1";

	/**
	 * Validates the S1_stateHasEnvironment constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S1_stateHasEnvironment(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S1_stateHasEnvironment",
				 STATE__S1_STATE_HAS_ENVIRONMENT__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S15_StateMoveLeftMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S15_STATE_MOVE_LEFT_MUST_BE_SET__EEXPRESSION = "moveLeft.oclIsUndefined()=false";

	/**
	 * Validates the S15_StateMoveLeftMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S15_StateMoveLeftMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S15_StateMoveLeftMustBeSet",
				 STATE__S15_STATE_MOVE_LEFT_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S6_UniqueDirectionalKeyValues constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S6_UNIQUE_DIRECTIONAL_KEY_VALUES__EEXPRESSION = "\n" +
		"\t\t\tlet numOfUniqueDirKeys :Integer = 6 in\n" +
		"\t\t\tlet allDirectionalKeyValues : Set(String)= self.actionButtonA->union(self.actionButtonB->union(self.moveDown->union(self.moveLeft->union(self.moveRight->union(self.moveUp->asSet()))))) in\n" +
		"\t\t\t allDirectionalKeyValues->size() = numOfUniqueDirKeys";

	/**
	 * Validates the S6_UniqueDirectionalKeyValues constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S6_UniqueDirectionalKeyValues(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S6_UniqueDirectionalKeyValues",
				 STATE__S6_UNIQUE_DIRECTIONAL_KEY_VALUES__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S10_ValidMapFile constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S10_VALID_MAP_FILE__EEXPRESSION = "isMapImageFileType(self.mapFile) = true";

	/**
	 * Validates the S10_ValidMapFile constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S10_ValidMapFile(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S10_ValidMapFile",
				 STATE__S10_VALID_MAP_FILE__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S11_ValidTilesFile constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S11_VALID_TILES_FILE__EEXPRESSION = "isTilesFileType(self.tilesFile) = true";

	/**
	 * Validates the S11_ValidTilesFile constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S11_ValidTilesFile(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S11_ValidTilesFile",
				 STATE__S11_VALID_TILES_FILE__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S8_StateIdMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S8_STATE_ID_MUST_BE_SET__EEXPRESSION = "id.oclIsUndefined()=false";

	/**
	 * Validates the S8_StateIdMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S8_StateIdMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S8_StateIdMustBeSet",
				 STATE__S8_STATE_ID_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S4_jumpForceChecker constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S4_JUMP_FORCE_CHECKER__EEXPRESSION = "jumpForce>10000 and jumpForce<50000";

	/**
	 * Validates the S4_jumpForceChecker constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S4_jumpForceChecker(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S4_jumpForceChecker",
				 STATE__S4_JUMP_FORCE_CHECKER__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S16_StateMoveRightMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S16_STATE_MOVE_RIGHT_MUST_BE_SET__EEXPRESSION = "moveRight.oclIsUndefined()=false";

	/**
	 * Validates the S16_StateMoveRightMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S16_StateMoveRightMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S16_StateMoveRightMustBeSet",
				 STATE__S16_STATE_MOVE_RIGHT_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S12_StateBackgroundImageMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S12_STATE_BACKGROUND_IMAGE_MUST_BE_SET__EEXPRESSION = "backgroundImage.oclIsUndefined()=false";

	/**
	 * Validates the S12_StateBackgroundImageMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S12_StateBackgroundImageMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S12_StateBackgroundImageMustBeSet",
				 STATE__S12_STATE_BACKGROUND_IMAGE_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S19_StateActionButtonAMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S19_STATE_ACTION_BUTTON_AMUST_BE_SET__EEXPRESSION = "actionButtonA.oclIsUndefined()=false";

	/**
	 * Validates the S19_StateActionButtonAMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S19_StateActionButtonAMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S19_StateActionButtonAMustBeSet",
				 STATE__S19_STATE_ACTION_BUTTON_AMUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S17_StateMoveUpMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S17_STATE_MOVE_UP_MUST_BE_SET__EEXPRESSION = "moveUp.oclIsUndefined()=false";

	/**
	 * Validates the S17_StateMoveUpMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S17_StateMoveUpMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S17_StateMoveUpMustBeSet",
				 STATE__S17_STATE_MOVE_UP_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S13_StateTilesFileMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S13_STATE_TILES_FILE_MUST_BE_SET__EEXPRESSION = "tilesFile.oclIsUndefined()=false";

	/**
	 * Validates the S13_StateTilesFileMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S13_StateTilesFileMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S13_StateTilesFileMustBeSet",
				 STATE__S13_STATE_TILES_FILE_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S9_ValidBackgroundImageFileType constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S9_VALID_BACKGROUND_IMAGE_FILE_TYPE__EEXPRESSION = "isValidImageFileType(self.backgroundImage) = true";

	/**
	 * Validates the S9_ValidBackgroundImageFileType constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S9_ValidBackgroundImageFileType(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S9_ValidBackgroundImageFileType",
				 STATE__S9_VALID_BACKGROUND_IMAGE_FILE_TYPE__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S7_StateNameMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S7_STATE_NAME_MUST_BE_SET__EEXPRESSION = "name.oclIsUndefined()=false";

	/**
	 * Validates the S7_StateNameMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S7_StateNameMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S7_StateNameMustBeSet",
				 STATE__S7_STATE_NAME_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the S14_StateMapFileMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String STATE__S14_STATE_MAP_FILE_MUST_BE_SET__EEXPRESSION = "mapFile.oclIsUndefined()=false";

	/**
	 * Validates the S14_StateMapFileMustBeSet constraint of '<em>State</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateState_S14_StateMapFileMustBeSet(State state, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.STATE,
				 state,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "S14_StateMapFileMustBeSet",
				 STATE__S14_STATE_MAP_FILE_MUST_BE_SET__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateMapLoader(MapLoader mapLoader, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(mapLoader, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRectangularEntity(RectangularEntity rectangularEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(rectangularEntity, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE7_yPosGreaterThanZero(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE1_TypeMustBeDefined(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE3_NameMustNotBeEmptyString(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE5_TypeMustNotBeEmptyString(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE2_NameMustBeSet(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE4_MassBeGreaterThanZero(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE6_xPosGreaterThanZero(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateRectangularEntity_RE1_HeightGreaterZero(rectangularEntity, diagnostics, context);
		if (result || diagnostics != null) result &= validateRectangularEntity_RE1_WidthGreaterZero(rectangularEntity, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the RE1_HeightGreaterZero constraint of '<em>Rectangular Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String RECTANGULAR_ENTITY__RE1_HEIGHT_GREATER_ZERO__EEXPRESSION = "height > 0";

	/**
	 * Validates the RE1_HeightGreaterZero constraint of '<em>Rectangular Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRectangularEntity_RE1_HeightGreaterZero(RectangularEntity rectangularEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.RECTANGULAR_ENTITY,
				 rectangularEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "RE1_HeightGreaterZero",
				 RECTANGULAR_ENTITY__RE1_HEIGHT_GREATER_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the RE1_WidthGreaterZero constraint of '<em>Rectangular Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String RECTANGULAR_ENTITY__RE1_WIDTH_GREATER_ZERO__EEXPRESSION = "width > 0";

	/**
	 * Validates the RE1_WidthGreaterZero constraint of '<em>Rectangular Entity</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateRectangularEntity_RE1_WidthGreaterZero(RectangularEntity rectangularEntity, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.RECTANGULAR_ENTITY,
				 rectangularEntity,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "RE1_WidthGreaterZero",
				 RECTANGULAR_ENTITY__RE1_WIDTH_GREATER_ZERO__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateActorGame(ActorGame actorGame, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(actorGame, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE7_yPosGreaterThanZero(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE1_TypeMustBeDefined(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE3_NameMustNotBeEmptyString(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE5_TypeMustNotBeEmptyString(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE2_NameMustBeSet(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE4_MassBeGreaterThanZero(actorGame, diagnostics, context);
		if (result || diagnostics != null) result &= validateAbstractEntity_AE6_xPosGreaterThanZero(actorGame, diagnostics, context);
		return result;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateTileSet(TileSet tileSet, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(tileSet, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEvent(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
		if (!validate_NoCircularContainment(event, diagnostics, context)) return false;
		boolean result = validate_EveryMultiplicityConforms(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryDataValueConforms(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryReferenceIsContained(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryBidirectionalReferenceIsPaired(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryProxyResolves(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_UniqueID(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryKeyUnique(event, diagnostics, context);
		if (result || diagnostics != null) result &= validate_EveryMapEntryUnique(event, diagnostics, context);
		if (result || diagnostics != null) result &= validateEvent_E2_SizeOfName(event, diagnostics, context);
		if (result || diagnostics != null) result &= validateEvent_E4_OnlyOneTrigger(event, diagnostics, context);
		if (result || diagnostics != null) result &= validateEvent_E3_SizeOfMessage(event, diagnostics, context);
		if (result || diagnostics != null) result &= validateEvent_G2_IfSubscriberThenTrigger(event, diagnostics, context);
		if (result || diagnostics != null) result &= validateEvent_G1_AtLeastOneSubscriberToTriggeredEvent(event, diagnostics, context);
		return result;
	}

	/**
	 * The cached validation expression for the E2_SizeOfName constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String EVENT__E2_SIZE_OF_NAME__EEXPRESSION = "name.size() <= 30";

	/**
	 * Validates the E2_SizeOfName constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEvent_E2_SizeOfName(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.EVENT,
				 event,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "E2_SizeOfName",
				 EVENT__E2_SIZE_OF_NAME__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the E4_OnlyOneTrigger constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String EVENT__E4_ONLY_ONE_TRIGGER__EEXPRESSION = "let numOfTriggers : Integer = triggerEntity->size() + triggerGameState->size()\n" +
		"\t\t\t\t\t\t\t\t\tin numOfTriggers <= 1";

	/**
	 * Validates the E4_OnlyOneTrigger constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEvent_E4_OnlyOneTrigger(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.EVENT,
				 event,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "E4_OnlyOneTrigger",
				 EVENT__E4_ONLY_ONE_TRIGGER__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the E3_SizeOfMessage constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String EVENT__E3_SIZE_OF_MESSAGE__EEXPRESSION = "message.size() <= 30";

	/**
	 * Validates the E3_SizeOfMessage constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEvent_E3_SizeOfMessage(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.EVENT,
				 event,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "E3_SizeOfMessage",
				 EVENT__E3_SIZE_OF_MESSAGE__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the G2_IfSubscriberThenTrigger constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String EVENT__G2_IF_SUBSCRIBER_THEN_TRIGGER__EEXPRESSION = "\n" +
		"\t\t\tlet numOfTriggers : Integer = triggerEntity->size() + triggerGameState->size() in\n" +
		"\t\t\tlet numOfSubscribers : Integer = subscriberEntities->size() + subscriberGameStates->size() in\n" +
		"\t\t\tnumOfSubscribers > 0 implies numOfTriggers = 1";

	/**
	 * Validates the G2_IfSubscriberThenTrigger constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEvent_G2_IfSubscriberThenTrigger(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.EVENT,
				 event,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "G2_IfSubscriberThenTrigger",
				 EVENT__G2_IF_SUBSCRIBER_THEN_TRIGGER__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * The cached validation expression for the G1_AtLeastOneSubscriberToTriggeredEvent constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	protected static final String EVENT__G1_AT_LEAST_ONE_SUBSCRIBER_TO_TRIGGERED_EVENT__EEXPRESSION = "\n" +
		"\t\t\tlet numOfTriggers : Integer = triggerEntity->size() + triggerGameState->size() in\n" +
		"\t\t\tlet numOfSubscribers : Integer = subscriberEntities->size() + subscriberGameStates->size() in\n" +
		"\t\t\tnumOfTriggers = 1 implies numOfSubscribers > 0";

	/**
	 * Validates the G1_AtLeastOneSubscriberToTriggeredEvent constraint of '<em>Event</em>'.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEvent_G1_AtLeastOneSubscriberToTriggeredEvent(Event event, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return
			validate
				(Gamedsl2Package.Literals.EVENT,
				 event,
				 diagnostics,
				 context,
				 "http://www.eclipse.org/emf/2002/Ecore/OCL",
				 "G1_AtLeastOneSubscriberToTriggeredEvent",
				 EVENT__G1_AT_LEAST_ONE_SUBSCRIBER_TO_TRIGGERED_EVENT__EEXPRESSION,
				 Diagnostic.ERROR,
				 DIAGNOSTIC_SOURCE,
				 0);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateIEventHandler(IEventHandler iEventHandler, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(iEventHandler, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateEventTracker(EventTracker eventTracker, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(eventTracker, diagnostics, context);
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public boolean validateSprite(Sprite sprite, DiagnosticChain diagnostics, Map<Object, Object> context) {
		return validate_EveryDefaultConstraint(sprite, diagnostics, context);
	}

	/**
	 * Returns the resource locator that will be used to fetch messages for this validator's diagnostics.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public ResourceLocator getResourceLocator() {
		// TODO
		// Specialize this to return a resource locator for messages specific to this validator.
		// Ensure that you remove @generated or mark it @generated NOT
		return super.getResourceLocator();
	}

} //Gamedsl2Validator
